#ifndef NEOPUSHBUTTONPRIVATE_H
#define NEOPUSHBUTTONPRIVATE_H

#include "def.h"
#include <QPainter>

class NeoPushButton;
class NeoPushButtonPrivate : public QObject
{
    Q_OBJECT
    NEO_PRIVATE_CREATE(NeoPushButton)
    NEO_PRIVATE_PROPERTY_CREATE_H(int, BorderRadius)
    NEO_PRIVATE_PROPERTY_CREATE_H(QColor, NormalBackgroundColor)
    NEO_PRIVATE_PROPERTY_CREATE_H(QColor, HoverBackgroundColor)
    NEO_PRIVATE_PROPERTY_CREATE_H(QColor, PressedBackgroundColor)
    NEO_PRIVATE_PROPERTY_CREATE_H(NeoPushButtonType::PushButtonStyle, ButtonStyle)
public:
    NeoPushButtonPrivate(QObject *parent = nullptr);
    ~NeoPushButtonPrivate();

private:
    void drawBackground(QPainter *painter);
    void drawIcon(QPainter *painter);
    void drawText(QPainter *painter);

private:
    const int pSpace{5};
};

#endif